package es.generator.config;

import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Component
@EnableTransactionManagement
public class MpCodeGeneratorConfig {


    //乐观锁
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){return new OptimisticLockerInterceptor(); }
    //分页
    @Bean
    public PaginationInterceptor paginationInterceptor(){return  new PaginationInterceptor();}
    //逻辑删除组件
    @Bean
    public ISqlInjector sqlInjector(){return new LogicSqlInjector(); }

/*
* SQL执行效率组件
* */
    @Bean
//    @Profile({"dev","test"})
    public PerformanceInterceptor performanceInterceptor(){
        PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
//        performanceInterceptor.setMaxTime(100*1000);
        performanceInterceptor.setFormat(true);
        return performanceInterceptor;
    }

}
